package com.aims.server.dto;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * 企业或集团外常用账户信息表单DTO
 */
public class ExtAccountFormDTO {
    /**
     * 表单ID(用于更新操作)
     */
    private String formId;

    /**
     * 企业名称(含括号内企业标识)
     */
    @NotBlank(message = "企业名称不能为空")
    @Size(max = 200, message = "企业名称长度不能超过200字符")
    private String companyName;

    /**
     * 主申请账号
     */
    @NotBlank(message = "主申请账号不能为空")
    @Size(max = 40, message = "主申请账号长度不能超过40字符")
    private String mainApplyingAccount;

    /**
     * 主申请账号的开户行名称
     */
    @NotBlank(message = "主申请账号的开户行名称不能为空")
    @Size(max = 200, message = "主申请账号的开户行名称长度不能超过200字符")
    private String mainApplyingAccountBankName;

    /**
     * 法定代表人(或负责人)
     */
    @NotBlank(message = "法定代表人不能为空")
    @Size(max = 50, message = "法定代表人长度不能超过50字符")
    private String legalRepresentative;

    /**
     * 联系人
     */
    @NotBlank(message = "联系人不能为空")
    @Size(max = 50, message = "联系人长度不能超过50字符")
    private String contactPerson;

    /**
     * 联系电话
     */
    @NotBlank(message = "联系电话不能为空")
    @Size(max = 40, message = "联系电话长度不能超过40字符")
    private String contactPhone;

    /**
     * 明细列表
     */
    @NotNull(message = "明细列表不能为空")
    @Valid
    private List<ExtAccountItemDTO> items;

    public String getFormId() {
        return formId;
    }

    public void setFormId(String formId) {
        this.formId = formId;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getMainApplyingAccount() {
        return mainApplyingAccount;
    }

    public void setMainApplyingAccount(String mainApplyingAccount) {
        this.mainApplyingAccount = mainApplyingAccount;
    }

    public String getMainApplyingAccountBankName() {
        return mainApplyingAccountBankName;
    }

    public void setMainApplyingAccountBankName(String mainApplyingAccountBankName) {
        this.mainApplyingAccountBankName = mainApplyingAccountBankName;
    }

    public String getLegalRepresentative() {
        return legalRepresentative;
    }

    public void setLegalRepresentative(String legalRepresentative) {
        this.legalRepresentative = legalRepresentative;
    }

    public String getContactPerson() {
        return contactPerson;
    }

    public void setContactPerson(String contactPerson) {
        this.contactPerson = contactPerson;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public List<ExtAccountItemDTO> getItems() {
        return items;
    }

    public void setItems(List<ExtAccountItemDTO> items) {
        this.items = items;
    }
}